-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Add PHP adapters and refactor PHP payloads #20160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add PHP adapters and refactor PHP payloads #20160
Conversation
df92d85
to
6308762
Compare
6308762
to
e009e14
Compare
lib/msf/core/payload/php.rb
Outdated
|
||
@dis = dis | ||
dis = options[:disabled_varname] || vars[:disabled_varname] | ||
dis = '$' + dis unless dis.start_with?('$') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this expected to be misaligned like this?
I would think rubocop would have caught this, but maybe it gets aligned with the =
further down in the file?
e009e14
to
ed2d73d
Compare
ed2d73d
to
a033d51
Compare
a033d51
to
029f4b7
Compare
I need to rebase this again now that #19976 was landed. I didn't realize there was already a PR to do some of this but this still adds a second adapter and some much needed refactoring. |
This adds two PHP adapters, one for going to ARCH_CMD and one for coming from ARCH_CMD. This requires changes added to rapid7/rex-random_identifier#16 to define the PHP language that's now used in a few places. While refactoring code, it became pretty clear that the function to generate a PHP stub that executes a command had been copy-pasted quite a few times. There's now a mixing method providing it in a single location. It shouldn't be necessary moving forward though because module authors can just use the adapter now which does the same thing, no new target definition required.
Three payloads were removed that were effectively just invocations of Perl commands from PHP. There are ARCH_CMD equivalents of those payloads, so keeping them and refactoring them was redundant and unnecessary.
php/unix/cmd/*
payloadscmd/unix/php/
payloads